aboutsummaryrefslogtreecommitdiff
path: root/src/routes/user/[user]/badges/+page.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/user/[user]/badges/+page.svelte')
-rw-r--r--src/routes/user/[user]/badges/+page.svelte25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index 2abf8377..69b74917 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -31,7 +31,7 @@
$: ({ BadgeWallUser } = data);
$: preferences = $BadgeWallUser.fetching
? undefined
- : ($BadgeWallUser.data?.User.preferences as Preferences);
+ : ($BadgeWallUser.data?.User?.preferences as Preferences | undefined);
$: if (browser && preferences && preferences.badge_wall_css) {
const sanitise = (css: string) =>
@@ -191,7 +191,7 @@
let importLinks = false;
let importCategory = '';
let importReplies = false;
- let badger: Partial<User>;
+ let badger: Partial<User> | null;
let migrateMode = false;
let hideMode = false;
const authorised = authorisedJson.includes($identity.id);
@@ -202,10 +202,17 @@
type GroupedBadges = { [key: string]: IndexedBadge[] };
- const setShadowHide = () =>
+ const setShadowHide = () => {
+ if (!badger) {
+ loadError = 'Something went wrong. Try refreshing.';
+
+ return;
+ }
+
shadowHideBadgeQuery.mutate({
id: badger.id as number
});
+ };
onMount(async () => {
if (browser && (await localforage.getItem('badgeWallNoticeDismissed'))) noticeDismissed = true;
@@ -217,8 +224,8 @@
}
: await user(data.username);
- if (!isId && !badger) {
- loadError = 'User not found.';
+ if (!badger) {
+ loadError = "Couldn't find this user.";
return;
}
@@ -506,6 +513,12 @@
const shadowHideBadge = () => {
if (!selectedBadge && !authorised) return;
+ if (!badger) {
+ loadError = 'Something went wrong. Try refreshing.';
+
+ return;
+ }
+
shadowHideBadgeQuery
.mutate({
id: badger.id as number,
@@ -528,6 +541,8 @@
<Message message="Loading badges ..." />
<Skeleton grid={true} count={100} width="150px" height="170px" />
+ {:else if !$BadgeWallUser.data.User}
+ <Message message="No badges yet." />
{:else}
{@const ungroupedBadges = castBadgesToIndexedBadges($BadgeWallUser.data.User.badges)}
{@const isBadgeSelected =